如何让 Oracle ZFS 存储设备发挥最佳性能

Oracle ZFS 存储设备和 VMware vSphere 5.x 最佳实践:第 1 部分

作者:Anderson Souza

如何配置磁盘存储、集群、CPU 以及 L1/L2 缓存大小、网络和文件系统以便 Oracle ZFS 存储设备发挥最佳性能。


2013 年 7 月发布


本文是一个由七部分组成的系列文章的第 1 部分,本系列文章就如何配置 VMware vSphere 5.x 和 Oracle ZFS 存储设备以实现最优 I/O 性能和吞吐量提供了最佳实践和建议。最佳实践和建议重点介绍光纤通道、NFS 和 iSCSI 协议的配置和调优选项。

想对本文发表评论吗?请将链接发布在 Facebook 的 OTN Garage 页面上。有类似文章要分享?请将其发布在 Facebook 或 Twitter 上,我们来进行讨论。

本系列文章还包括针对 VMware 集群和多池配置正确设计网络基础架构的建议,以及推荐的虚拟机数据布局。此外,本系列文章还演示如何结合使用 VMware 链接克隆技术与 Oracle ZFS 存储设备。

本系列所有文章均可在这里找到:

:有关该主题的白皮书,请参见 Sun NAS 存储文档页面

Oracle ZFS 存储设备产品线将行业领先的 Oracle 集成、管理简化和性能与创新的存储基础架构相结合,前所未有地简化了部署和使用。更多信息,请参见 Oracle ZFS 存储设备网站和本文结尾处的“另请参见”部分中列出的资源。

:Sun ZFS 存储设备、Sun ZFS Storage 7000 和 ZFS 存储设备指的是同一个 Oracle ZFS 存储设备系列。

系统组件示例概述

表 1、表 2 和表 3 分别描述了本系列文章介绍的参考架构中使用的硬件配置、操作系统和软件版本。

表1. 参考架构中使用的硬件
设备 数量 配置
存储 1 个集群(2 个控制器) Oracle ZFS Storage 7420 集群
每个控制器 256 GB DRAM
每个控制器 2 个 512GB 读缓存 SSD
2 x 20 2TB SAS-2 磁盘阵列
2 个双端口10GbE NIC
2 个双端口 8Gbps FC HBA
2 个 17GB 日志设备
网络 2 10GbE 网络交换机
服务器 2 Oracle Sun 服务器 X3-2
256GB DRAM
2 个内置 HDD
1 个双端口 10GbE NIC
1 个双端口 8Gbps FC HBA

表 2. 参考架构中使用的虚拟机组件
操作系统 数量 配置
Microsoft Windows 2008 R2 (x64) 1 Microsoft Exchange Server
Oracle Linux 6.2 1 ORION:Oracle I/O Numbers Calibration Tool

表 3. 参考架构中使用的软件
软件 版本
Oracle ZFS 存储设备的 Appliance Kit (AK) 软件 2011.04.24.4.0,1-1.21
Microsoft Exchange Server Jetstress 验证工具 2010 (x64)
ORION:Oracle I/O Numbers Calibration Tool 11.1.0.7.0
VMware vCenter Server 5.1.0 (Build 880146)

控制器、软件版本和磁盘池

虚拟桌面基础架构产生高随机 I/O 模式,需要高存储性能和高可用性、低延时和快速响应速度。为满足这些需求,我们使用一个镜像 数据配置文件。该配置通过均分存取和冗余(通常是在两组磁盘之间)来复制副本并生成快速、可靠的存储。与写 SSD 的日志设备和 Sun ZFS 存储设备架构结合使用,该配置文件每秒可产生大量的输入/输出操作 (IOPS),从而满足关键虚拟桌面环境的需求。

建议的 VMware vSphere 5.x 最低磁盘存储配置包括:

  • 由(至少)20 个 300GB、600GB 或 900GB(10000 或 15000 RPM 性能磁盘)或 44 个 3TB SAS-2(7200 RPM 容量磁盘驱动器)组成的镜像磁盘池,至少配备两个 3GB SSD 设备,供 LogZilla 处理条带化日志配置文件
  • 一个条带化缓存,至少 2 个 512GB 用作 L2 缓存 (L2ARC)。

:图 1 至图 3 中的示例演示了 44 个 3TB SAS-2 7200 RPM 磁盘。

图 1

图 1. Oracle ZFS 存储设备 — 磁盘池配置

图 2

图 2. Oracle ZFS 存储设备 — 日志配置文件配置

图 3

图 3. Oracle ZFS 存储设备 — 缓存配置文件配置

:为了实现虚拟桌面基础架构的高可用性和适当的负载平衡,可以使用一个支持集群的 Oracle ZFS 存储设备模型。在双活模式下配置集群,使用 Oracle ZFS 存储设备软件版本 2011.1.4.2.x 或更高版本。

Oracle ZFS 存储设备软件版本可从以下 URL 下载:

http://www.oracle.com/technetwork/cn/server-storage/sun-unified-storage/downloads/index.html

如果您要使用 DE2-24C/P 驱动器机柜模型,请确保系统使用 Oracle ZFS 存储设备软件版本 2011.1.5.0.x 或更高版本。请参考以下链接了解其他信息:

https://wikis.oracle.com/display/FishWorks/ak-2011.04.24.5.0+Release+Notes

另外,Sun ZFS Storage 7000 系统管理指南 中提供了有关 Oracle ZFS 存储设备集群配置的其他信息,网址为:

http://docs.oracle.com/cd/E26765_01/html/E26397/index.html

CPU、L1 缓存和 L2 缓存

CPU、L1 缓存 (ARC) 和 L2 缓存 (L2ARC) 的以下组合和型号对于满足压缩和重复数据删除操作以及虚拟桌面基础架构大范围部署的整体性能需求是至关重要的。推荐的最低配置为:

  • 每个 Oracle ZFS 存储设备头至少两个 2GHz Intel Xeon X7550 CPU
  • 每个头至少 512GB DRAM 内存(L1 缓存)
  • 每个头至少两个 512GB SSD 用作 ReadZilla 缓存(L2 缓存)

网络设置

执行以下步骤,确保运行 NFS 和 iSCSI 流量的网络配置已设计为存档高可用性且无单点故障:

  • 将存储流量与其他网络流量相隔离。可以利用 VLAN、网络分段或仅供 NFS 和 iSCSI 流量使用的专用交换机来实现此配置。
  • 在 Oracle ZFS 存储设备上,每个头至少配置两个物理 10GbE(双端口)NIC,使用 IEEE 802.3ad 链路聚合控制协议 (LACP) 和最大传输单元 (MTU) 巨型帧(9000 字节)绑定成一个通道。如果要使用集群配置,每个头至少配置两个 10GbE(双端口)NIC,同时将一个 IP 网络多路径 (IPMP) 配置与 LACP 结合使用。
  • 可通过 IPMP 配置实现网络高可用性,通过链路聚合获得更好的网络性能。这两种技术相得益彰,可一起部署,为虚拟桌面环境提供网络性能和可用性优势。
  • 要根据源和 IP 地址选择一个出站端口,可利用 LACP 策略 L3。
  • 对于交换机通信模式,使用 LACP 活动模式。该模式将发送和接收 LACP 消息来协商连接和监视链路状态。
  • 在 LACP 消息之间使用一个 LACP 短计时器时间间隔,配置如图 4 所示:

:一些网络交换机供应商不支持 LACP 协议。在这种情况下,将 LACP 模式设置为“Off”。详细信息请参见交换机供应商文档。

图 4

图 4. Oracle ZFS 存储设备上的 LACP、巨型帧和 MTU 配置

NFS、项目和共享

当使用的 Oracle ZFS 存储设备具有多个磁盘架时,尝试跨不同磁盘池拆分负载并使用“无单点故障”(NSPF) 特性。该设计将为您提供更多存储资源,并为您的虚拟化环境提供更好的 I/O 负载平衡、性能和吞吐量。

以下示例只使用一个磁盘架、一个镜像存储池、一个项目和 6 个不同的 NFS 共享。表 4 列出该池的项目和文件系统共享。

表 4. 为性能测试创建的项目和文件系统共享
池名称 项目 文件系统
Pool1 winboot
vswap
ms-exchangedb
ms-log
linux-os
oltp-db
/export/winboot
/export/vswap
/export/ms-exchangedb
/export/ms-log
/export/linux-os
/export/oltp-db

图 5 显示了共享配置,图 6 显示了 Oracle ZFS 存储设备浏览器用户界面 (BUI) 上针对性能测试的文件系统和挂载点配置。配置详细信息如下。

图 5

图 5. Oracle ZFS 存储设备 BUI 中显示的共享配置

  • Space Usage 设置中,Quota Reservation 以及 Oracle ZFS 存储设备端的 User 或 Group 的配置详细信息不在本文讨论范围内。有关这些设置的更多信息,请参见 Oracle ZFS 存储设备文档(本文结尾处的“另请参见”部分中列出了 URL)。然而,作为一个考量了安全因素的最佳实践,将 NFS ACL 配置为仅允许 VMware ESXi5.x 主机挂载 NFS 共享。
  • Read-only:保留未选中状态。
  • Update access time on read:取消选中该选项。该选项仅对文件系统有效,控制是否在读取时更新文件的访问时间。在主要由读操作以及大量文件构成的高负载下,关闭该选项可提高性能。
  • Non-blocking mandatory locking:不要选择该选项。该选项仅对文件系统有效,因为文件系统的主协议是 SMB。SMB 不在本文讨论范围内。
  • Data deduplication不要选择该选项。
  • Data compression:选择数据压缩的 LZJB 算法。将数据写入存储池之前,共享可利用不同的压缩算法选择性地压缩数据。

    :LZJB 算法被认为是最快的算法,不会消耗太多的 CPU。建议虚拟化环境使用 LZJB 算法。

  • Checksum:选择 Fletcher4 (Standard) 校验和算法。该特性控制用于数据块的校验和算法,并且允许系统检测设备返回的无效数据。使用 Fletcher4 算法(默认的校验和算法)对正常的操作来说足够了,并且还有助于避免额外的 CPU 负载。
  • Cache device usage:建议选择“All data and metadata”选项。选中该选项后,将缓存所有文件、LUN 以及元数据。
  • Synchronous write bias:要提供最快的响应时间,请选择 Latency 选项。
  • Database record size:根据下表配置该设置:

    表 5. 性能测试的数据库记录大小
    池名称 项目 文件系统 数据库记录大小
    Pool1 vswap
    ms-exchangedb
    ms-log
    linux-os
    oltp-db
    winboot
    /export/vswap
    /export/ms-exchangedb
    /export/ms-log
    /export/linux-os
    /export/oltp-db
    /export/winboot
    64k
    32k
    128k
    64k
    8k
    64k
  • Additional replication:要存储数据块的一个副本,请选择 Normal (Single Copy) 选项。
  • Virus scan:假设每个虚拟机都启动并运行了自己的防病毒软件,此处不建议启用病毒扫描。然而,在虚拟化环境中,对于一个为所有用户托管 Windows 主目录或共享文件夹的 NFS 共享,可以启用该选项。

    如果您希望在设备层启用该特性,请参考以下文档了解更多信息:

    http://www.oracle.com/technetwork/server-storage/sun-unified-storage/documentation/mcafee-antivirus-final-41712-1614883.pdf

  • Prevent destruction:默认情况下,该选项是关闭的。建议启用该选项以防止 NFS 共享遭受意外破坏。
  • Restrict ownership change:默认情况下,该选项是打开的。不建议更改虚拟机文件的所有权。

    图 6

    图 6. Oracle ZFS 存储设备 BUI 中显示的文件系统和挂载点配置

    图 7 显示了 Oracle ZFS 存储设备针对使用 NFS 协议的 VMware vSphere 5.x 的最低建议配置。注意,图中的“Oracle ZFS head”指的是 Oracle ZFS 存储设备头。

    图 7

    图 7. Oracle ZFS 存储设备 — 针对使用 NFS 的 VMware vSphere 5 的最低建议配置

另请参见

关于 Oracle ZFS 存储设备测试结果的更多信息,请参见以下网站:

另请参见以下文档和网站:

关于作者

Anderson Souza 是 Oracle 应用程序集成工程团队的一名虚拟化高级软件工程师。他于 2012 年加入 Oracle,拥有超过 14 年的技术行业、系统工程和虚拟化经验。Anderson 拥有计算机网络科学学士学位和通信系统/网络工程硕士学位,并且还是项目管理方向的 MBA。

修订版 1.0,2013 年 7 月 1 日

关注我们:
博客 | Facebook | Twitter | YouTube